1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17 package com.google.common.base;
18
19 import static com.google.common.base.CaseFormat.LOWER_CAMEL;
20 import static com.google.common.base.CaseFormat.LOWER_HYPHEN;
21 import static com.google.common.base.CaseFormat.LOWER_UNDERSCORE;
22 import static com.google.common.base.CaseFormat.UPPER_CAMEL;
23 import static com.google.common.base.CaseFormat.UPPER_UNDERSCORE;
24
25 import com.google.common.annotations.GwtCompatible;
26 import com.google.common.testing.SerializableTester;
27
28 import junit.framework.TestCase;
29
30
31
32
33
34
35 @GwtCompatible(emulated = true)
36 public class CaseFormatTest extends TestCase {
37
38 public void testIdentity() {
39 for (CaseFormat from : CaseFormat.values()) {
40 assertSame(from + " to " + from, "foo", from.to(from, "foo"));
41 for (CaseFormat to : CaseFormat.values()) {
42 assertEquals(from + " to " + to, "", from.to(to, ""));
43 assertEquals(from + " to " + to, " ", from.to(to, " "));
44 }
45 }
46 }
47
48 public void testLowerHyphenToLowerHyphen() {
49 assertEquals("foo", LOWER_HYPHEN.to(LOWER_HYPHEN, "foo"));
50 assertEquals("foo-bar", LOWER_HYPHEN.to(LOWER_HYPHEN, "foo-bar"));
51 }
52
53 public void testLowerHyphenToLowerUnderscore() {
54 assertEquals("foo", LOWER_HYPHEN.to(LOWER_UNDERSCORE, "foo"));
55 assertEquals("foo_bar", LOWER_HYPHEN.to(LOWER_UNDERSCORE, "foo-bar"));
56 }
57
58 public void testLowerHyphenToLowerCamel() {
59 assertEquals("foo", LOWER_HYPHEN.to(LOWER_CAMEL, "foo"));
60 assertEquals("fooBar", LOWER_HYPHEN.to(LOWER_CAMEL, "foo-bar"));
61 }
62
63 public void testLowerHyphenToUpperCamel() {
64 assertEquals("Foo", LOWER_HYPHEN.to(UPPER_CAMEL, "foo"));
65 assertEquals("FooBar", LOWER_HYPHEN.to(UPPER_CAMEL, "foo-bar"));
66 }
67
68 public void testLowerHyphenToUpperUnderscore() {
69 assertEquals("FOO", LOWER_HYPHEN.to(UPPER_UNDERSCORE, "foo"));
70 assertEquals("FOO_BAR", LOWER_HYPHEN.to(UPPER_UNDERSCORE, "foo-bar"));
71 }
72
73 public void testLowerUnderscoreToLowerHyphen() {
74 assertEquals("foo", LOWER_UNDERSCORE.to(LOWER_HYPHEN, "foo"));
75 assertEquals("foo-bar", LOWER_UNDERSCORE.to(LOWER_HYPHEN, "foo_bar"));
76 }
77
78 public void testLowerUnderscoreToLowerUnderscore() {
79 assertEquals("foo", LOWER_UNDERSCORE.to(LOWER_UNDERSCORE, "foo"));
80 assertEquals("foo_bar", LOWER_UNDERSCORE.to(LOWER_UNDERSCORE, "foo_bar"));
81 }
82
83 public void testLowerUnderscoreToLowerCamel() {
84 assertEquals("foo", LOWER_UNDERSCORE.to(LOWER_CAMEL, "foo"));
85 assertEquals("fooBar", LOWER_UNDERSCORE.to(LOWER_CAMEL, "foo_bar"));
86 }
87
88 public void testLowerUnderscoreToUpperCamel() {
89 assertEquals("Foo", LOWER_UNDERSCORE.to(UPPER_CAMEL, "foo"));
90 assertEquals("FooBar", LOWER_UNDERSCORE.to(UPPER_CAMEL, "foo_bar"));
91 }
92
93 public void testLowerUnderscoreToUpperUnderscore() {
94 assertEquals("FOO", LOWER_UNDERSCORE.to(UPPER_UNDERSCORE, "foo"));
95 assertEquals("FOO_BAR", LOWER_UNDERSCORE.to(UPPER_UNDERSCORE, "foo_bar"));
96 }
97
98 public void testLowerCamelToLowerHyphen() {
99 assertEquals("foo", LOWER_CAMEL.to(LOWER_HYPHEN, "foo"));
100 assertEquals("foo-bar", LOWER_CAMEL.to(LOWER_HYPHEN, "fooBar"));
101 assertEquals("h-t-t-p", LOWER_CAMEL.to(LOWER_HYPHEN, "HTTP"));
102 }
103
104 public void testLowerCamelToLowerUnderscore() {
105 assertEquals("foo", LOWER_CAMEL.to(LOWER_UNDERSCORE, "foo"));
106 assertEquals("foo_bar", LOWER_CAMEL.to(LOWER_UNDERSCORE, "fooBar"));
107 assertEquals("h_t_t_p", LOWER_CAMEL.to(LOWER_UNDERSCORE, "hTTP"));
108 }
109
110 public void testLowerCamelToLowerCamel() {
111 assertEquals("foo", LOWER_CAMEL.to(LOWER_CAMEL, "foo"));
112 assertEquals("fooBar", LOWER_CAMEL.to(LOWER_CAMEL, "fooBar"));
113 }
114
115 public void testLowerCamelToUpperCamel() {
116 assertEquals("Foo", LOWER_CAMEL.to(UPPER_CAMEL, "foo"));
117 assertEquals("FooBar", LOWER_CAMEL.to(UPPER_CAMEL, "fooBar"));
118 assertEquals("HTTP", LOWER_CAMEL.to(UPPER_CAMEL, "hTTP"));
119 }
120
121 public void testLowerCamelToUpperUnderscore() {
122 assertEquals("FOO", LOWER_CAMEL.to(UPPER_UNDERSCORE, "foo"));
123 assertEquals("FOO_BAR", LOWER_CAMEL.to(UPPER_UNDERSCORE, "fooBar"));
124 }
125
126 public void testUpperCamelToLowerHyphen() {
127 assertEquals("foo", UPPER_CAMEL.to(LOWER_HYPHEN, "Foo"));
128 assertEquals("foo-bar", UPPER_CAMEL.to(LOWER_HYPHEN, "FooBar"));
129 }
130
131 public void testUpperCamelToLowerUnderscore() {
132 assertEquals("foo", UPPER_CAMEL.to(LOWER_UNDERSCORE, "Foo"));
133 assertEquals("foo_bar", UPPER_CAMEL.to(LOWER_UNDERSCORE, "FooBar"));
134 }
135
136 public void testUpperCamelToLowerCamel() {
137 assertEquals("foo", UPPER_CAMEL.to(LOWER_CAMEL, "Foo"));
138 assertEquals("fooBar", UPPER_CAMEL.to(LOWER_CAMEL, "FooBar"));
139 assertEquals("hTTP", UPPER_CAMEL.to(LOWER_CAMEL, "HTTP"));
140 }
141
142 public void testUpperCamelToUpperCamel() {
143 assertEquals("Foo", UPPER_CAMEL.to(UPPER_CAMEL, "Foo"));
144 assertEquals("FooBar", UPPER_CAMEL.to(UPPER_CAMEL, "FooBar"));
145 }
146
147 public void testUpperCamelToUpperUnderscore() {
148 assertEquals("FOO", UPPER_CAMEL.to(UPPER_UNDERSCORE, "Foo"));
149 assertEquals("FOO_BAR", UPPER_CAMEL.to(UPPER_UNDERSCORE, "FooBar"));
150 assertEquals("H_T_T_P", UPPER_CAMEL.to(UPPER_UNDERSCORE, "HTTP"));
151 assertEquals("H__T__T__P", UPPER_CAMEL.to(UPPER_UNDERSCORE, "H_T_T_P"));
152 }
153
154 public void testUpperUnderscoreToLowerHyphen() {
155 assertEquals("foo", UPPER_UNDERSCORE.to(LOWER_HYPHEN, "FOO"));
156 assertEquals("foo-bar", UPPER_UNDERSCORE.to(LOWER_HYPHEN, "FOO_BAR"));
157 }
158
159 public void testUpperUnderscoreToLowerUnderscore() {
160 assertEquals("foo", UPPER_UNDERSCORE.to(LOWER_UNDERSCORE, "FOO"));
161 assertEquals("foo_bar", UPPER_UNDERSCORE.to(LOWER_UNDERSCORE, "FOO_BAR"));
162 }
163
164 public void testUpperUnderscoreToLowerCamel() {
165 assertEquals("foo", UPPER_UNDERSCORE.to(LOWER_CAMEL, "FOO"));
166 assertEquals("fooBar", UPPER_UNDERSCORE.to(LOWER_CAMEL, "FOO_BAR"));
167 }
168
169 public void testUpperUnderscoreToUpperCamel() {
170 assertEquals("Foo", UPPER_UNDERSCORE.to(UPPER_CAMEL, "FOO"));
171 assertEquals("FooBar", UPPER_UNDERSCORE.to(UPPER_CAMEL, "FOO_BAR"));
172 assertEquals("HTTP", UPPER_UNDERSCORE.to(UPPER_CAMEL, "H_T_T_P"));
173 }
174
175 public void testUpperUnderscoreToUpperUnderscore() {
176 assertEquals("FOO", UPPER_UNDERSCORE.to(UPPER_UNDERSCORE, "FOO"));
177 assertEquals("FOO_BAR", UPPER_UNDERSCORE.to(UPPER_UNDERSCORE, "FOO_BAR"));
178 }
179
180 public void testConverterToForward() {
181 assertEquals("FooBar", UPPER_UNDERSCORE.converterTo(UPPER_CAMEL).convert("FOO_BAR"));
182 assertEquals("fooBar", UPPER_UNDERSCORE.converterTo(LOWER_CAMEL).convert("FOO_BAR"));
183 assertEquals("FOO_BAR", UPPER_CAMEL.converterTo(UPPER_UNDERSCORE).convert("FooBar"));
184 assertEquals("FOO_BAR", LOWER_CAMEL.converterTo(UPPER_UNDERSCORE).convert("fooBar"));
185 }
186
187 public void testConverterToBackward() {
188 assertEquals("FOO_BAR", UPPER_UNDERSCORE.converterTo(UPPER_CAMEL).reverse().convert("FooBar"));
189 assertEquals("FOO_BAR", UPPER_UNDERSCORE.converterTo(LOWER_CAMEL).reverse().convert("fooBar"));
190 assertEquals("FooBar", UPPER_CAMEL.converterTo(UPPER_UNDERSCORE).reverse().convert("FOO_BAR"));
191 assertEquals("fooBar", LOWER_CAMEL.converterTo(UPPER_UNDERSCORE).reverse().convert("FOO_BAR"));
192 }
193
194 public void testConverter_nullConversions() {
195 for (CaseFormat outer : CaseFormat.values()) {
196 for (CaseFormat inner : CaseFormat.values()) {
197 assertNull(outer.converterTo(inner).convert(null));
198 assertNull(outer.converterTo(inner).reverse().convert(null));
199 }
200 }
201 }
202
203 public void testConverter_toString() {
204 assertEquals(
205 "LOWER_HYPHEN.converterTo(UPPER_CAMEL)",
206 LOWER_HYPHEN.converterTo(UPPER_CAMEL).toString());
207 }
208
209 public void testConverter_serialization() {
210 for (CaseFormat outer : CaseFormat.values()) {
211 for (CaseFormat inner : CaseFormat.values()) {
212 SerializableTester.reserializeAndAssert(outer.converterTo(inner));
213 }
214 }
215 }
216 }
217